package offer_test_40;

import struct.MyStack;

//输入两个整数序列，第一个序列表示栈的压入顺序，请判断第二个序列是否为该栈的弹出序列。
//假设压入栈的所有数字均不相等。例如压栈序列为1、2、3、4、5.
//序列4、5、3、2、1是压栈序列对应的一个弹出序列，但4、3、5、1、2却不是。
public class two_StackPushPopOrder {
	public static void main(String[] args) {
//		int[] array1 = { 1, 2, 3, 4, 5 };
//		int[] array2 = { 4,3,5,1,2};
		int[] array1={};
		int[] array2={};
		System.out.println(ispoporder(array1, array2));
	}

	public static boolean ispoporder(int[] origin, int[] output) {
		if (origin.length != output.length) {
			return false;
		}
//		if(origin.length==0&&output.length==0){
//			return true;
//		}
		MyStack one = new MyStack(10);
		// MyStack two=new MyStack(10);
		int j = 0;
		for (int i = 0; i < origin.length; i++) {
			one.push(origin[i]);
			while (!one.isEmpty()&&(Integer) one.peak() == output[j]) {
				one.pop();
				j++;
			}

		}
		if (one.elementCount == 0) {
			return true;
		} else {
			return false;
		}
	}
}
